import ADTs.PointADT;
import Gameplay.Level;
import Gameplay.Player;
import Gameplay.Enemy.*;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;



public class EnemyTest extends TestCase {
	public static Test suite() {
		return new TestSuite(EnemyTest.class);
	}
	
	public void testSetter(){
		PointADT point = new PointADT(300, 300);
		Enemy e = new Enemy1(point, 10);;
		e.setAcceleration(new PointADT(1, 3));
		Assert.assertTrue(e.getAcceleration().getX() == 1 && e.getAcceleration().getY() == 3);
	}
	public void hpCal(){
		PointADT point = new PointADT(300, 300);
		Enemy e = new Enemy1(point, 10);
		Assert.assertTrue(e.getHP() == 10);
	}

	public void damageCal(){
		PointADT point = new PointADT(300, 300);
		Enemy e = new Enemy1(point, 10);
		e.damage(3);
		Assert.assertTrue(e.getHP() == 7);
	}
	public void maxHPCal(){
		PointADT point = new PointADT(300, 300);
		Enemy e = new Enemy1(point, 100);
		Assert.assertTrue(e.getHP() == 100);
	}

	public void checkLocation(){
		PointADT point = new PointADT(300, 300);
		Enemy e = new Enemy1(point, 100);
		Assert.assertTrue(e.getLocation().copy().equal(point));
	}
	public void checkMovementBounds(){
		PointADT point = new PointADT(300, 300);
		Enemy e = new Enemy1(point, 100);
		Assert.assertTrue(e.getEnemyValue() == 100);
	}

	public void checkRadius(){
		PointADT point = new PointADT(300, 300);
		Enemy e = new Enemy1(point, 100);
		Assert.assertTrue(e.getRadius() == 10);
	}
}